Le menu avec prix et icônes

Nous allons ici construire un menu contenant permettant d’afficher des prix.

Construction

Commençons par créer la fonction qui englobera la création du menu pour le joueur :

public void CreatePanel(Player player) { }

Nous allons dans cet exemple afficher les informations de l’objet n°1 :

Item item = Nova.man.item.GetItem(1);

Nous pouvons désormais appeler le constructeur en utilisant le type TabPrice :

UIPanel pricePanel = new UIPanel("Menu avec prix", UIPanel.PanelType.TabPrice);

Nous pouvons déjà ajouter un bouton Fermer avec la méthode AddButton() qui fermera le menu que nous intitulerons panel :

pricePanel.AddButton("Fermer", (panel) =>
{
    player.ClosePanel(panel);
});

Et un bouton Valider qui exécutera le code associé à l’onglet sélectionné :

pricePanel.AddButton("Valider", (panel) =>
{
    panel.SelectTab();
});

Nous allons désormais ajouter les informations de notre item dans un onglet dédié avec la méthode AddTabLine() :

Champs Correspondance
Titre Steak
Prix 10€
Icône L’icône du steak
Action Affiche dans la console Item sélectionné et l’id du steak
pricePanel.AddTabLine(player.NewTranslate(item.itemName), 10 + "€", Nova.man.newIcons.IndexOf(item.Icon), (panel) =>
{
    Debug.Log("Item selectionné : " + item.id);
});

Il ne nous reste plus qu’à afficher le menu au joueur avec la méthode ShowPanelUI() :

player.ShowPanelUI(pricePanel);

Résultat

Le code complet

public void CreatePanel(Player player)
{
    Item item = Nova.man.item.GetItem(1);

    UIPanel pricePanel = new UIPanel("Menu avec prix", UIPanel.PanelType.TabPrice);

    pricePanel.AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    });

    pricePanel.AddButton("Valider", (panel) =>
    {
        panel.SelectTab();
    });

    pricePanel.AddTabLine(player.NewTranslate(item.itemName), 10 + "€", Nova.man.newIcons.IndexOf(item.Icon), (panel) =>
    {
        Debug.Log("Item selectionné : " + item.id);
    });

    player.ShowPanelUI(pricePanel);
}

Une version simplifiée

public void CreatePanel(Player player)
{
    Item item = Nova.man.item.GetItem(1);

    UIPanel pricePanel = new UIPanel("Menu avec prix", UIPanel.PanelType.TabPrice)
    .AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    })
    .AddButton("Valider", (panel) =>
    {
        panel.SelectTab();
    })
    .AddTabLine(player.NewTranslate(item.itemName), 10 + "€", Nova.man.newIcons.IndexOf(item.Icon), (panel) =>
    {
        Debug.Log("Item selectionné : " + item.id);
    });

    player.ShowPanelUI(pricePanel);
}

ℹ️ Remarques
- Les noms des items doivent êtres traduits dans la langue du joueur grâce à la fonction player.NewTranslate()